Génération d'une permutation

Modifié par Clemni

Pour générer une permutation aléatoire de l'ensemble {0, 1, ..., n - 1} en Python, on peut procéder comme suit.

  • On génère une première liste L qui contient tous les entiers de 0 à n - 1.
  • On initialise la permutation p comme étant une liste vide.
  • Tant que la liste L n'est pas vide :
    - on choisit au hasard un élément de la liste L ;
    - on ajoute cet élément à la liste p ;
    - on retire cet élément de la liste L.

Exercice 

Compléter la fonction perm_alea qui prend en argument un entier n et renvoie une permutation aléatoire de l'ensemble {0, 1 , ..., n-1} sous la forme d'une liste Python.

from random import choice

def perm_alea(n):
    L = list(range(n))
    p = ...
    while L != [] :
        # on choisit un élément au hasard dans la liste L
        x = ...
        # on retire x de la liste L
        ...
        # on ajoute x à la liste p
        ...
    return p

Remarque

Il existe en réalité une fonction du module random qui permet de renvoyer un arrangement ou une permutation d'un ensemble : il s'agit de la fonction sample.

Source : https://lesmanuelslibres.region-academique-idf.fr
Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-terminale-specialite ou directement le fichier ZIP
Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0